package com.wiz.web.service;

import com.wiz.web.vo.criteria.AccountAmountHistoryCriteria;
import com.wiz.web.vo.criteria.AccountChargeHistoryCriteria;
import com.wiz.web.vo.criteria.AccountPointHistoryCriteria;
import com.wiz.web.vo.criteria.MemberCriteria;

public interface MemberService extends BasicService {
	
	/**
	 * 新增会员
	 * @param member
	 * @return
	 */
	public String addMember(MemberCriteria criteria) throws Exception;
	
	/**
	 * 修改会员状态
	 * @param stationId
	 * @param member
	 * @return
	 * @throws Exception
	 */
	public String updateMemberStatus(MemberCriteria criteria) throws Exception;
	
	/**
	 * 会员换卡
	 * @param stationId
	 * @param member
	 * @return
	 * @throws Exception
	 */
	public String changeCard(MemberCriteria criteria) throws Exception;
	
	/**
	 * 获取用户基本信息+帐户信息
	 * @param member
	 * @return
	 */
	public String getMemberInfo(MemberCriteria criteria);
	
	/**
	 * 用户模糊搜索
	 * @param stationId
	 * @param member
	 * @return
	 */
	public String getMembersByFuzzyQuery(MemberCriteria criteria) throws Exception;
	
	/**
	 * 获取用户会员等级详情
	 * @param stationId
	 * @param member
	 * @return
	 */
	public String getGradeByMemberId(MemberCriteria criteria);
	
	/**
	 * 更新会员信息
	 * @param stationId
	 * @param member
	 * @return
	 */
	public String updateMemberByMemberId(MemberCriteria criteria) throws Exception;
	
	/**
	 * 是否需要加油密码---取消
	 * @return
	 */
	public String updateIsMemberPassword(MemberCriteria criteria);
	
	/**
	 * 修改加油密码
	 * @return
	 */
	public String editMemberPassword(MemberCriteria criteria) throws Exception;
	
	/**
	 * 重置密码
	 * @return
	 */
	public String resetMemberPassword(MemberCriteria criteria);
	
	/**
	 * 获取资金流水列表
	 * @param stationId
	 * @param member
	 * @return
	 */
	public String getMemberAccountHistroyList(AccountAmountHistoryCriteria criteria) throws Exception;
	
	/**
	 * 获取积分流水列表
	 * @param stationId
	 * @param member
	 * @return
	 */
	public String getMemberPointHistroyList(AccountPointHistoryCriteria criteria) throws Exception;
	
	/**
	 * 客户端充值
	 * @param stationId
	 * @param member
	 * @return
	 */
	public String chargeAmountByClient(AccountChargeHistoryCriteria chargeCriteria) throws Exception;
	
	/**
	 * 微信充值
	 * @param hqId
	 * @param openId
	 * @param chargeAmount
	 * @return
	 * @throws Exception
	 */
	public String chargeAmountByWx(String hqId, String openId, Integer chargeAmount, String refId) throws Exception;
	
	/**
	 * 获取充值流水列表
	 * @param stationId
	 * @param member
	 * @return
	 */
	public String getMemberChargeHistroyList(AccountChargeHistoryCriteria criteria) throws Exception;
	
	/**
	 * 返回绑定二维码
	 * @param hqId
	 * @param stationId
	 * @param member
	 * @return
	 * @throws Exception
	 */
	public String bindMemberOpenId(MemberCriteria criteria) throws Exception;
	
	/**
	 * 修改可加油加油站限制
	 * @param criteria
	 * @return
	 * @throws Exception
	 */
	public String updateFuellingStations(MemberCriteria criteria) throws Exception;
	
	/**
	 * 修改可充值加油站限制
	 * @param criteria
	 * @return
	 * @throws Exception
	 */
	public String updateChargeStations(MemberCriteria criteria) throws Exception;
}
